package com.cskaoyan.javase.object._7packaging;

import java.util.function.DoubleUnaryOperator;

/**
 * 以Integer为例,来探讨一下包装类型的特点:
 *      1.自动拆装箱,意味着在Java代码中
 *          绝大多数情况下下
 *          基本数据类型和它的包装类型是可以互相转换,是可以直接混用的
 *      2.
 * @since 21:19
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo3 {
    public static void main(String[] args) {
        int num = 10;
        // 将基本数据类型变成一个对象,这个过程就是装箱
        // Unnecessary boxing 'Integer.valueOf(num)'
        Integer numObj = Integer.valueOf(num);
        Integer numObj2 = num;
        // 将一个对象转换成对应基本数据类型数值,就是拆箱
        // Unnecessary unboxing 'numObj.intValue()'
        int num2 = numObj.intValue();

        // 将String转换成int,double,float等都需要依赖于对应的包装类型
        int num3 = Integer.parseInt("123");
    }

    // 求int数组元素的最大值
    public static Integer getMax(int[] arr){
        if (arr == null || arr.length == 0){
            System.out.println("输入的数组不正常,请重新输入!");
            return null;
        }
        int max = arr[0];
        for (int ele : arr) {
            if (ele > max){
                max = ele;
            }
        }
        return max;
    }
}
